#include "pioche.h"
#include "inc/Peuples/geant.h"

Pioche::Pioche()
{
    CreatePioche();
}
/*
 *Liste les peuples et les pouvoirs pour en faire des entites aleatoires
 */
void Pioche::CreatePioche(){

    // Cree les peuples
    Geant *geant = new Geant();
    HommesRats *hommeRat = new HommesRats();
    Humain *humain = new Humain();
    Mages *mage = new Mages();
    MiPortions *miPortion = new MiPortions();
    Nains *nain = new Nains();
    Tritons *triton = new Tritons();
    //Cree les pouvoirs
    Alchimistes *alchimiste = new Alchimistes();
    Armes *armes = new Armes();
    DesCollines *desCollines = new DesCollines();

    //Ajoute les peuples a la liste
    peuples.append(*geant);
    peuples.append(*hommeRat);
    peuples.append(*humain);
    peuples.append(*mage);
    peuples.append(*miPortion);
    peuples.append(*nain);
    peuples.append(*triton);
    //Ajoute les pouvoirs a la liste
    pouvoirs.append(*alchimiste);
    pouvoirs.append(*armes);
    pouvoirs.append(*desCollines);

    int tailleAvantOperation = 0;
    if(peuples.size() < pouvoirs.size())
        tailleAvantOperation = peuples.size();
    else
        tailleAvantOperation = pouvoirs.size();


    for( int i = 0; i < tailleAvantOperation ; i++ ){
        srand ( time(NULL) );

        int random_1 = rand() % peuples.size();
        qDebug()<<"Random_1 :"<<random_1;
        int random_2 = rand() % pouvoirs.size();
        qDebug()<<"Random_2 :"<<random_2;
        if(i < 6){
            prixPiocheVisible.append(0);
        }
        Entite *entite = new Entite(peuples.at(random_1),pouvoirs.at(random_2));
        entites.append(*entite);
        corbeilleAPeuple.append(peuples.at(random_1));
        peuples.removeAt(random_1);
        pouvoirs.removeAt(random_2);
//        int test = entites.at(2).getNbTotalDePions();
//            qDebug() << "entite nb pion a 2 "<<test;
    }



}
Entite Pioche::entiteSelectionne(int id){
    //paiement sur les entites qui precedent celle selectionnee
    for (int i = 0; i < id;i++){
        prixPiocheVisible[i] = prixPiocheVisible[i]+ 1 ;
        qDebug()<<"prixdans la pioche "<<prixPiocheVisible.at(i);
    }

    prixPiocheVisible.removeAt(id);
    prixPiocheVisible.append(0);


    Entite *entite = new Entite();
    *entite = entites.at(id);

    entites.removeAt(id);
    return *entite;
}






